package com.things8.iot.baseIot.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author yzh
 * @version 1.0
 * @date 2021/5/9 22:59
 */
@ApiModel(value = "com-things8-iot-example-demo-entity-SysDevice")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SysDevice implements Serializable {
    @ApiModelProperty(value = "")
    private Long id;

    @ApiModelProperty(value = "")
    private Long sysid;

    /**
     * 设备名称
     */
    @ApiModelProperty(value = "设备名称")
    private String name;

    @ApiModelProperty(value = "")
    private String serialnumber;

    /**
     * 关联设备类型sysID
     */
    @ApiModelProperty(value = "关联设备类型sysID")
    private Long devicemodelid;

    /**
     * 状态：-1：未激活，0：离线，1：在线
     */
    @ApiModelProperty(value = "状态：-1：未激活，0：离线，1：在线")
    private String status;

    /**
     * 通信地址
     */
    @ApiModelProperty(value = "通信地址")
    private String comaddress;

    /**
     * 型号
     */
    @ApiModelProperty(value = "型号")
    private String model;

    /**
     * 关联厂商id
     */
    @ApiModelProperty(value = "关联厂商id")
    private Long vendorid;

    /**
     * 关联网关sysID
     */
    @ApiModelProperty(value = "关联网关sysID")
    private Long gatewayid;

    /**
     * 设备地址
     */
    @ApiModelProperty(value = "设备地址")
    private String address;

    /**
     * 网络标识
     */
    @ApiModelProperty(value = "网络标识")
    private String netid;

    /**
     * 端口号
     */
    @ApiModelProperty(value = "端口号")
    private String port;

    /**
     * 第三方对接云平台标识
     */
    @ApiModelProperty(value = "第三方对接云平台标识")
    private String cloudid;

    /**
     * 设备图标
     */
    @ApiModelProperty(value = "设备图标")
    private String icon;

    /**
     * 经度
     */
    @ApiModelProperty(value = "经度")
    private String longtitude;

    /**
     * 纬度
     */
    @ApiModelProperty(value = "纬度")
    private String latitude;

    /**
     * 分配次数
     */
    @ApiModelProperty(value = "分配次数")
    private Integer ownercount;

    @ApiModelProperty(value = "")
    private Date creattime;

    /**
     * 命令
     */
    @ApiModelProperty(value = "命令")
    private String cmd;

    /**
     * 格式
     */
    @ApiModelProperty(value = "格式")
    private String format;

    /**
     * 计算公式
     */
    @ApiModelProperty(value = "计算公式")
    private String expression;

    /**
     * 0:未定位，1：已定位
     */
    @ApiModelProperty(value = "0:未定位，1：已定位")
    private Integer position;

    /**
     * 映射表名称
     */
    @ApiModelProperty(value = "映射表名称")
    private String tablename;

    @ApiModelProperty(value = "")
    private String cpattern;

    @ApiModelProperty(value = "")
    private String collection;

    /**
     * 离线时限
     */
    @ApiModelProperty(value = "离线时限")
    private Integer offlinetime;

    /**
     * UUID
     */
    @ApiModelProperty(value = "UUID")
    private String secret;

    @ApiModelProperty(value = "")
    private String iotid;

    /**
     * 0:未激活,1:已激活
     */
    @ApiModelProperty(value = "0:未激活,1:已激活")
    private Integer active;

    /**
     * 有效期(月)
     */
    @ApiModelProperty(value = "有效期(月)")
    private Integer validitymonth;

    /**
     * 激活时间
     */
    @ApiModelProperty(value = "激活时间")
    private Date activatetime;

    /**
     * 设备告警(0:正常)
     */
    @ApiModelProperty(value = "设备告警(0:正常)")
    private Integer alarm;

    @ApiModelProperty(value = "")
    private Integer rssi;

    @ApiModelProperty(value = "")
    private String manager;

    @ApiModelProperty(value = "")
    private String shopkeeper;

    private static final long serialVersionUID = 1L;

    public static SysDeviceBuilder builder() {
        return new SysDeviceBuilder();
    }
}